首先,了解一下,如果不采用nginx配置代理,需要在config目录下的index.js文件中配置代理服务,配置如下,以某个项目为例:

proxyTable        : {
            '/gateway': {
                target      : 'http://api.robotsphere.com:8081',
                changeOrigin: true,
                pathRewrite : {}
            },
            '/cgi'    : {
                target      : 'http://api.robotsphere.com:8081',
                changeOrigin: true,
                pathRewrite : {}
            },
        }

现在,我用nginx反向代理替换上述的方案:

开发环境

开发前配置switchhosts里面ip域名,指明后,当我们访问某个指明的域名,就会首先查看配置里对应指明的ip地址,而无须通过dns域名解析访问

#开发环境
    server {
        #配置端口号
        listen 80;
        #配置server_name
        server_name lufeifei.com;
        #设置默认页面 地址为webpack-devserver地址
        location  / {
            proxy_pass http://127.0.0.1:8075; 
        }
        #这里因为我的的vue-router 所以将带#号的请求转发到本地服务器
        location ~ .*#.*$ {
            proxy_pass http://127.0.0.1:8075;
        }
        #请求后端接口的服务器地址
        location ~ /(gateway|cgi)/ {
            proxy_pass http://api.robotsphere.com:8081;
        }
    }

开发环境下没有dist目录,所以location中代理路径填的是我们npm run dev 后的服务地址,当我们在url输入server_name配置的域名后,nginx会帮我们代理访问http://127.0.0.1:8075(npm run dev后配置生成的url),这里也可以是http://localhost:8075,127.0.0.1指向的就是localhost,8075端口是我们在vue项目中config目录下的index.js中配置的端口号。注意:后端服务器地址也要带上端口号。

生产环境

#生产环境
    server {
        #监听80端口,80端口是知名端口号,用于HTTP协议
        listen       80;
        
        #定义使用www.xx.com访问
        server_name  work.lufei.com lufei.com;
        
        location / {
            root D:\workspace/robot\dist;   
            index  index.html index.htm;
        }
        
        #反向代理的路径(和upstream绑定),location 后面设置映射的路径 ,proxy_pass 后为服务端的域名和端口
        location ~ /(gateway|cgi)/ {   
            proxy_pass http://api.robotsphere.com:8081;  
        } 
    }

生产环境下,我们会npm run build生成一个dist目录,这个目录就是webpack打包后的目录,所以在生产环境下,location下的root指向的是这个生成的目录,里面有我们需要的入口(首页)的html文件,即index.html, location下的index也是用来配置默认打开的文件,后面可以配置多个,即如果找不到index.html会继续往后面查看index.htm文件并默认打开它。server_name 后面同样可以配置多个域名,需要在switchhosts配置,如下为switchhosts配置:

# robotsphere.com
#后端服务
192.168.1.118 api.robotsphere.com 
#自定义域名
127.0.0.1 work.lufei.com lufei.com lufeifei.com 
这里我附上我参考的博文地址:https://blog.csdn.net/qq_32930863/article/details/77164738

MangoGoing
780 声望1.2k 粉丝

开源项目:详见个人详情